Add the milk to a large pot or Dutch oven and heat over medium-low until the milk reaches 170℉, stirring frequently and reading the temperature with an instant-read thermometer. This should take about 1 hour.
Take off the heat and pour in the vinegar. Gently stir until the milk starts to curdle.
Leave the pot uncovered for 30 minutes and allow the curds to form and fully separate.
Layer a colander or strainer with a cheesecloth and set it over a large bowl. Transfer the curds to the prepared colander with a slotted spoon or spider strainer.
Cover the exposed curds with plastic wrap to keep in the moisture and allow it to drain for 20 minutes.
Gently stir in the salt until combined.
Press the cheese by gathering the curds into a ball in the middle of the cloth and pressing them into a hockey puck shape. Tie the cloth closed around the cheese. Place the bound cheese back in the colander or strainer and place a heavy can or pan on top. Let sit for about 1 ½ hours.
Uncover the cheese and transfer it to an airtight container for storage in the refrigerator or use immediately.
Notes
Storage: Homemade queso fresco can be stored in an airtight container in the refrigerator for up to 1 week.
Vinegar: Queso fresco is a fairly simple and straightforward recipe. Some variations of recipes include using lemon juice instead of vinegar, but I found that it gave the queso fresco a much softer consistency, similar to ricotta. If that is your preference, you can use ¾ cup of fresh lemon juice (about 5-6 lemons) instead.
For a more crumbly texture, gather and tie the cheesecloth over your faucet while it drips instead of pressing it.
Salt can be added to taste. You can adjust it as needed when mixing it with the cheese curds.